28e54aa60726e1538f7f73f1a01c23daecd18bab,platform/lang-impl/src/com/intellij/psi/search/PredefinedSearchScopeProviderImpl.java,PredefinedSearchScopeProviderImpl,getPredefinedScopes,#Project#DataContext#boolean#boolean#boolean#boolean#,70

Before Change


      if (dataContextElement == null) {
        final Editor selectedTextEditor = FileEditorManager.getInstance(project).getSelectedTextEditor();
        if (selectedTextEditor != null) {
          dataContextElement = PsiDocumentManager.getInstance(project).getPsiFile(selectedTextEditor.getDocument());
        }
      }

After Change


    final Editor selectedTextEditor = ApplicationManager.getApplication().isDispatchThread()
                                      ? FileEditorManager.getInstance(project).getSelectedTextEditor()
                                      : null;
    final PsiFile psiFile =
      (selectedTextEditor != null) ? PsiDocumentManager.getInstance(project).getPsiFile(selectedTextEditor.getDocument()) : null;
    if (psiFile != null) {
      result.add(new LocalSearchScope(psiFile, IdeBundle.message("scope.current.file")));
    }

    if (dataContext != null) {
      PsiElement dataContextElement = CommonDataKeys.PSI_FILE.getData(dataContext);
      if (dataContextElement == null) {
        dataContextElement = CommonDataKeys.PSI_ELEMENT.getData(dataContext);
      }

      if (dataContextElement == null && psiFile != null) {
        dataContextElement = psiFile;
      }